package com.itjin.contant;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 帖子排序类型枚举
 */
@Getter
@AllArgsConstructor
public enum PostSortType {

    /**
     * 按热度排序（默认）
     */
    HEAT(0, "heat", "按热度排序"),

    /**
     * 按最新时间排序
     */
    TIME(1, "time", "按最新时间排序"),

    /**
     * 按点赞数排序
     */
    LIKES(2, "likes", "按点赞数排序");

    /**
     * 排序类型编码
     */
    private final Integer code;

    /**
     * 排序字段名
     */
    private final String field;

    /**
     * 排序类型描述
     */
    private final String description;

    /**
     * 根据编码获取排序类型
     * @param code 编码
     * @return 排序类型
     */
    public static PostSortType getByCode(Integer code) {
        if (code == null) {
            return HEAT; // 默认热度排序
        }
        for (PostSortType sortType : values()) {
            if (sortType.getCode().equals(code)) {
                return sortType;
            }
        }
        return HEAT; // 未找到时返回默认值
    }
}
